
//preloading.....
load("library/common.js");

JEuler.system.loadJS("library/math.js");
JEuler.system.loadJS("library/bigInteger.js");

(function() {

    //JEuler.system.loadJS("data/???.dat");
    JEuler.system.printCaption("206");
    JEuler.system.startTimerCount();
    var BigInteger = JEuler.math.BigInteger;

    var cache1 = [], cache2 = [], number;
    for(var i=0; i<=9; i++) {
        for(var j=0; j<=9; j++) {
            for(var k=0; k<=9; k++) {
                number = (1020304 + i*10 + j*1000 + k*100000)*Math.pow(10,10);
                cache1.push(Math.floor(Math.sqrt(number))-1);
                number = (1020305 + i*10 + j*1000 + k*100000)*Math.pow(10,10);
                cache2.push(Math.floor(Math.sqrt(number))+1);
            }
        }
    }
    
    var a, b, n;
    for(var i=0; i<=999; i++) {
        for(var j=cache1[i]; j<=cache2[i]; j++) {
            a = new BigInteger(j); b = a.clone();
            a.times(b);
            print(b + "0^2=" + a + "00");
            if(test(a)) {
                print('Find....');
                JEuler.system.print(b + "0");
                JEuler.system.printTimerCount();
                return;
            }
        }
    }
    
    function test(a) {
        var n, pos=16;
        for(var i=1; i<=9; i++) {
            n = a.getInteger(pos);
            if(!(n==i)) {
                return false;
            }
            pos = pos-2;
        }
        return true;
    }

    JEuler.system.printTimerCount();
    
})();
